
package org.appfuse.model;

/**
 * Constant values used throughout the application.
 * 
 *
 * @author <a href="mailto:matt@raibledesigns.com">Matt Raible</a>
 */
public class Constants {

	// ~ Static fields/initializers
	// =============================================

	/**
	 * The name of the ResourceBundle used in this application
	 */
	public static final String BUNDLE_KEY = "ApplicationResources";

	/**
	 * The encryption algorithm key to be used for passwords
	 */
	public static final String ENC_ALGORITHM = "algorithm";

	/**
	 * A flag to indicate if passwords should be encrypted
	 */
	public static final String ENCRYPT_PASSWORD = "encryptPassword";

	/**
	 * File separator from System properties
	 */
	public static final String FILE_SEP = System.getProperty("file.separator");

	/**
	 * User home from System properties
	 */
	public static final String USER_HOME = System.getProperty("user.home") + FILE_SEP;

	/**
	 * The name of the configuration hashmap stored in application scope.
	 */
	public static final String CONFIG = "appConfig";

	/**
	 * Session scope attribute that holds the locale set by the user. By setting
	 * this key to the same one that Struts uses, we get synchronization in
	 * Struts w/o having to do extra work or have two session-level variables.
	 */
	public static final String PREFERRED_LOCALE_KEY = "org.apache.struts2.action.LOCALE";

	/**
	 * The request scope attribute under which an editable user form is stored
	 */
	public static final String USER_KEY = "userForm";

	/**
	 * The request scope attribute that holds the user list
	 */
	public static final String USER_LIST = "userList";

	/**
	 * The request scope attribute for indicating a newly-registered user
	 */
	public static final String REGISTERED = "registered";

	/**
	 * The name of the Administrator role, as specified in web.xml
	 */
	public static final String ADMIN_ROLE = "ROLE_ADMIN";

	/**
	 * The name of the User role, as specified in web.xml
	 */
	public static final String USER_ROLE = "ROLE_USER";

	/**
	 * The name of the Associate role, as specified in web.xml
	 */
	public static final String ASSOCIATE_ROLE = "ROLE_ASSOCIATE";

	/**
	 * The name of the commercial Administrator role, as specified in web.xml
	 */
	public static final String COMMERCIAL_ADMIN_ROLE = "ROLE_COMMERCIAL_ADMIN";

	/**
	 * The name of the commercial User role, as specified in web.xml
	 */
	public static final String COMMERCIAL_USER_ROLE = "ROLE_COMMERCIAL_USER";

	/**
	 * The name of the user's role list, a request-scoped attribute
	 * when adding/editing a user.
	 */
	public static final String USER_ROLES = "userRoles";

	/**
	 * The name of the available roles list, a request-scoped attribute
	 * when adding/editing a user.
	 */
	public static final String AVAILABLE_ROLES = "availableRoles";

	/**
	 * The name of the CSS Theme setting.
	 */
	public static final String CSS_THEME = "csstheme";
	
	/**
	 * CP code for primary contact
	 */
	public static final String PRIMARY_CONTACT = "PRI1";
	
	/**
	 * CP code for business contact
	 */
	public static final String BUSINESS_CONTACT = "BUS1";

    public static final String ROLE_CUSTOMER_CARE = "ROLE_CUSTOMER_CARE";

}
